The present invention relates to programmable controllers having a plurality of modules for performing different functions which operate a machine in response to the execution of a control program; and more particularly to a mechanism for identifying each type of module within the programmable controller.
Programmable controllers are typically connected to industrial equipment, such as assembly lines and machine tools, to sequentially operate the equipment in accordance with a stored control program. One type of such programmable controller is disclosed in U.S. Pat. No. 4,293,924 and consists of a rack which contains several functional modules. A rack backplane provides signal buses and connectors for electrically coupling the functional modules. One of these modules contains a processor which sequentially executes the control program. The control program is stored in a memory within the processor module and is executed to examine the condition of selected sensing devices on the controlled equipment, or to energize and deenergize selected operating devices on the controlled equipment contingent upon the status of one or more of the examined sensing devices. Also contained within the rack are a number of input/output (I/O) modules, which interface the processor to the sensing and operating devices. A given programmable controller can have a variety of different types of I/O modules, such as a.c. inputs or outputs, d.c. inputs or outputs, analog inputs or outputs, and open or closed loop positioning modules.
One of the benefits of this type of programmable controller is that as the need exists, it can be expanded by adding more racks and daisy chaining their backplane buses. In such an expanded controller, a system must be provided for addressing each module in the daisy chained racks. One such system assigns a unique address to every module position in the racks and incorporates an address decoder on each rack's backplane. The address decoder responds to the range of module position addresses for the rack by sending an enable signal to the module in the addressed position.
A problem encountered with this addressing system is that the decoder in each rack must be manually configured in order to identify the range of module position addresses to which it will respond. The range of addresses for a given rack depends upon the number of module positions in the racks which precede it in the daisy chain. Since manual configuration opens up the possibility of human error, an automatically configurable addressing system is preferred.